from threading import Thread   # 线程类
# 线程 进程

'''
进程：资源单位 每一个进程至少要有一个线程
线程：执行单位
'''

# 启动每一个程序默认都会有一个主线程

# def func():
#     for i in range(10):
#         print('func:',i)
#
# if __name__ == '__main__':
#     func()
#     for i in range(10):
#         print('main:',i)


# 多线程
# def func():
#     for i in range(10):
#         print('func:',i)
#
#
# if __name__ == '__main__':
#     t = Thread(target=func)  # 创建线程并给线程安排任务
#     t.start()  # 开始执行该线程 多线程状态为可以开始工作状态，具体执行时间由cpu决定
#     for i in range(10):
#         print('main:',i)


# class MyThread(Thread):
#     '''自己的线程,继承了线程的类'''
#     def run(self):  # run()的意思是当线程被执行的时候，被执行的就是run()
#         '''重写运行线程的方法'''
#         for i in range(10):
#             print('子线程：',i)
#
# if __name__ == '__main__':
#     t = MyThread()
#     # t.run()  # 不能这样写，会成方法的调用，变成单线程
#     t.start()  # 开启线程
#     for i in range(10):
#         print('主线程：',i)



def func(name):
    for i in range(10):
        print(name,i)


if __name__ == '__main__':
    t1 = Thread(target=func,args=('张家辉',))  # 创建线程并给线程安排任务
    t1.start()  # 开始执行该线程 多线程状态为可以开始工作状态，具体执行时间由cpu决定

    t2 = Thread(target=func,args=('陈奕迅',))  # 传参必须是元组
    t2.start()

    for i in range(10):
        print('main:',i)

